class Solution:
    
    def letterCombinations(self, digits: str) -> List[str]:
        if not digits:
            return []
        dic={
            '2':['a','b','c'],
            '3':['d','e','f'],
            '4':['g','h','i'],
            '5':['j','k','l'],
            '6':['m','n','o'],
            '7':['p','q','r','s'],
            '8':['t','u','v'],
            '9':['w','x','y','z']
            }
        res=[] 
        cur_v = []
        def back(n):
            if n == len(digits):
                res.append("".join(cur_v))
            else:
                for i in dic[digits[n]]:
                    cur_v.append(i)
                    back(n+1)
                    cur_v.pop()
        back(0)
        return res
                

    
    